https://towardsdatascience.com/exploratory-data-analysis-8fc1cb20fd15
library(imputeTS) # Rellenar datos faltantes
library(xts) # Manipulación de series temporales
library(zoo) # Sistemas de series temporales
library(tseries) # Análisis de series temporales
library(stats) # Funciones estadísticas básicas
library(forecast) # Predicción de series temporales
library(astsa) # Análisis de series temporales aplicado
library(corrplot) # Visualización de matrices de correlación
library(wordcloud) # Crear nubes de palabras
library(tidytext) # Análisis de texto con tidy data
library(AER) # Análisis econométrico con R
library(vars) # Modelos VAR y SVAR
library(dynlm) # Modelos lineales dinámicos
library(mFilter) # Filtros para series temporales
library(TSstudio) # Herramientas interactivas series temporales
library(tidyverse) # Colección de paquetes de datos tidy
library(sarima) # Modelos SARIMA
library(readr) # Leer archivos planos
library(readxl) # Leer archivos Excel
library(heatmaply) # Heatmaps interactivos
library(dplyr) # Manipulación de datos
library(ggplot2) # Sistema de gráficos
library(psych) # Procedimientos psicométricos
library(tidyr) # Reorganización de datos
library(readtext) # Leer archivos de texto
library(syuzhet) # Análisis de sentimientos
library(RColorBrewer) # Paletas de colores
library(tm) # Minería de texto
library(caret) # Entrenamiento de modelos predictivos
library(MASS) # Métodos estadísticos adicionales
library(rpart) # Modelos de partición recursiva
library(rpart.plot) # Gráficos para rpart
library(party) # Modelos basados en árboles
library(gmodels) # Herramientas de modelado
library(knitr) # Reportes dinámicos
library(cluster) # Métodos de agrupamiento
library(e1071) # Misc funciones SVM
library(pROC) # Curvas ROC
library(ISLR) # Data sets para aprendizaje estadístico
library(gridExtra) # Disposición de múltiples gráficos
library(car) # Regresión y Anova con R
library(DataExplorer) # Automatizar análisis exploratorio
library(randomForest) # Clasificación con random forest
library(class) # k-vecinos más cercanos
library(factoextra) # Visualización de resultados de clustering
library(purrr) # Programación funcional
library(viridis) # Paletas de colores para gráficos
library(scales) # Escalado de gráficos
library(lubridate) # Manipulación de fechas y horas
library(patchwork) # Combinar ggplot2 plots
library(janeaustenr) # Textos de Jane Austen
library(reshape2) # Reestructurar datos
library(tmap) # Crear mapas
library(sf) # Manipulación de datos geoespaciales
setwd("../databases")
form_satisfaccion <- read_excel("form/Encuesta_Datos_FORM_Fall2023.xlsx")
form_bajas = read_xlsx("form/temporary/BDD_FORM_BAJAS-2023.xlsx")
cp_nl <- st_read("geo_reference__nl/CP_NL")
## Reading layer `CP_19NL_v10' from data source
## `/Users/daviddrums180/Tec/Case_Study_Form/databases/geo_reference__nl/CP_NL'
## using driver `ESRI Shapefile'
## Simple feature collection with 1338 features and 1 field
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: 2578831 ymin: 1238179 xmax: 2858006 ymax: 1749577
## Projected CRS: Lambert_Conformal_Conic
exp_vehiculos = read_csv("industry_autos_mx/exportacion_vehiculos_mx.csv")
ventas_vehiculos = read_csv("industry_autos_mx/mx_venta_vehiculos.csv")
exp_vehiculos_total = read_excel("industry_autos_mx/exportacion_vehiculos.xlsx")
form_rh = read_csv("form/Datos_FORM_RH_FJ2024.csv")
form_ventas_detalle = read_excel("form/Datos_FORM_Ventas_FJ2024.xlsx")
El análisis exploratorio de los datos o EDA es un proceso analitico inicial en el analisis de conjuntos de datos que permite obtener una comprensión de las características fundamentales de los datos.
Esto se puede hacer mediante resúmenes estadísticos, medidas descriptivas, visualización de datos, y la identificación de patrones o anomalías dentro del conjunto de datos con matrices de correlación o scatter plots. Su objetivo principal es explorar y entender la naturaleza de los datos para informar las etapas posteriores del análisis.
El análisis exploratorio de los datos contribuye significativamente a mejorar el proceso y los resultados de la analítica descriptiva de varias maneras. Primero, ayuda a identificar las tendencias, correlaciones y patrones ocultos que pueden ser importantes para la comprensión de los datos. Esto permite formular hipótesis más precisas y dirigir el análisis descriptivo y posterior (predictivo o prescriptivo) de manera más efectiva.
Segundo, al descubrir datos atípicos o anomalías, el EDA asegura la calidad y la precisión de los datos antes de proceder con análisis más complejos, así como identificar la necesidad de transformaciónes necesarias previas a realizar el análisis Finalmente, facilita la selección de las técnicas estadísticas o modelos de datos más adecuados al revelar la estructura y distribución de los datos, lo que conduce a insights más relevantes y a la toma de decisiones basada en datos.
La empresa FORM, con sede en México, se ha destacado en el desarrollo de innovaciones en el empaque de autopartes, enfocándose en soluciones que permiten reducir el espacio necesario para almacenamiento y generando ahorros en logística. Han introducido un producto patentado globalmente que aumenta la capacidad de empaque y reduce significativamente el uso de materia prima, lo cual también tiene un impacto positivo en el medio ambiente.
Desde su fundación en 2011, FORM ha crecido significativamente, comenzando con un solo cliente y seis empleados, y expandiéndose a más de 150 colaboradores y atendiendo a más de 15 clientes automotrices. Entre sus clientes se encuentran nombres prominentes como Denso, Magna, International Automotive Components y Varroc Lighting Systems.
La especialización de FORM en empaques para autopartes delicadas y costosas la ha llevado a ser proveedor de armadoras de prestigio como Tesla, BMW y Mercedes Benz. Ofrecen soluciones personalizadas que aseguran la protección y la integridad de las autopartes durante su transporte, lo que es crucial para piezas de acabado delicado o espejo.
Con una planta en Apodaca, Nuevo León, la empresa ha establecido un área especializada para empaques termoformados, esenciales para el transporte de piezas electrónicas y otras autopartes sensibles que requieren cuidado especial para evitar daños durante el tránsito.
La filosofía de FORM de reducir el espacio de almacenamiento, la mano de obra para la administración y el armado de empaques, junto con la protección del producto, se alinea con la demanda creciente de la industria automotriz por eficiencia y sostenibilidad en las cadenas de suministro.
Las innovaciones de FORM y su enfoque en la sostenibilidad y eficiencia reflejan un compromiso con la mejora continua y la adaptación a las necesidades cambiantes del mercado automotriz, lo que les ha permitido mantenerse competitivos y relevantes en un sector en constante evolución.
Transformar nuestro entorno y resolver retos industriales de nuestros clientes a través de la colaboración, provocando nuevas oportunidades que potencian nuestro modelo de negocio, para alcanzar nuestros ideales.
En 2033 seremos una de las cinco mejores compañías de México que generan valor dentro de la cadena de suministro de las industrias que más valoran la forma en la que se protegen y trasladan las cosas.
“Ahora estamos volteando a los Estados Unidos, y ahora con la posibilidad de que Tesla llegue a Nuevo León, con mayor sentido volteamos hacia allá. Si todos nuestros clientes son automotrices e internacionales por qué no proveerlos en Estados Unidos, estamos trabajando fuerte para lograrlo”. - Felipe Flores García
Para el caso de México y E.U.A. (incluir 3-5 gráficos usando R*) usando fuentes de datos secundarias
El mercado automotriz en México constituye un sector vital para la economía del país, no solo por su significativa contribución al Producto Interno Bruto (PIB) sino también por su papel en la creación de empleos y en el fomento de la innovación tecnológica. Una faceta crucial de esta industria es el mercado de autopartes, que se erige como un pilar fundamental para la operatividad y el desarrollo de la industria automotriz en su conjunto. Este segmento incluye desde la fabricación de componentes esenciales del vehículo hasta sistemas avanzados que mejoran la seguridad, el rendimiento y la comodidad.
La interacción entre los fabricantes de automóviles y los proveedores de autopartes es intrínseca al ciclo de vida del producto automotriz, afectando directamente la cadena de suministro, la innovación en el diseño de productos y, en última instancia, la competitividad en el mercado global. Además, el mercado de autopartes en México se ve influenciado por factores como las regulaciones gubernamentales, los tratados de libre comercio, las tendencias de consumo y los avances tecnológicos, lo que lo convierte en un campo de estudio dinámico y complejo.
Para profundizar en el entendimiento de esta industria, se realizará un análisis exhaustivo utilizando diversas bases de datos recopiladas de múltiples fuentes. Este análisis buscará identificar tendencias, desafíos y oportunidades dentro del mercado de autopartes, así como su interconexión con la industria automotriz en general. Se examinarán aspectos como la evolución de la demanda de autopartes, la cadena de valor, el impacto de la tecnología en la producción y el diseño de autopartes, así como las estrategias adoptadas por las empresas para navegar en un entorno económico y regulatorio en constante cambio.
Analisis de Exportación de Vehiculos
mx_vehicle_exports <- read_excel("/Users/daviddrums180/Tec/Case_Study_Form/databases/industry_autos_mx/exportacion_vehiculos.xlsx")
mx_vehicle_exports_summary <- mx_vehicle_exports %>%
group_by(Año, Segmento) %>%
summarise(Cantidad_Total = sum(Cantidad, na.rm = TRUE))
# Definir la paleta de colores personalizada
colores <- c("#2D3250", "#435585", "#7077A1", "#F6B17A", "#9EC8B9", "#BE3144")
# Asegurarse de que hay suficientes colores para los segmentos
# Repetir la paleta si hay más segmentos que colores
n_segmentos <- length(unique(mx_vehicle_exports_summary$Segmento))
if (n_segmentos > length(colores)) {
colores <- rep(colores, length.out = n_segmentos)
}
# Gráfico de líneas con la paleta de colores personalizada
ggplot(mx_vehicle_exports_summary, aes(x = Año, y = Cantidad_Total, color = Segmento, group = Segmento)) +
geom_line() + # Dibuja líneas
geom_point() + # Añade puntos en cada dato
scale_color_manual(values = colores) + # Usa la paleta de colores definida
theme_minimal() + # Usa un tema minimalista
labs(title = "Evolución de la Exportación de Segmento de Vehículo a lo Largo de los Años",
x = "Año",
y = "Cantidad Total") +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
1. Crecimiento de SUVs: - La exportación de SUVs ha visto un crecimiento significativo hasta 2018, seguido de una disminución. Esto podría indicar cambios en la preferencia del consumidor o en la dinámica del mercado. FORM puede aprovechar esta tendencia ofreciendo soluciones de empaque personalizadas para este segmento, que parece tener una alta variabilidad en la demanda.
2. Volatilidad en Segmento de Lujo: - El segmento de lujo muestra volatilidad con un pico marcado alrededor de 2018. Esto puede abrir oportunidades para FORM en términos de proporcionar empaques de alta calidad que coincidan con las expectativas de los fabricantes de vehículos de lujo y sus consumidores.
3. Caída General Post-2018: - Después de 2018, todos los segmentos excepto los subcompactos muestran una caída, lo que podría deberse a factores económicos globales, políticas comerciales o la pandemia. FORM debe estar atento a estos factores externos que afectan la demanda de sus productos.
4. Beneficios Potenciales para FORM: - El análisis de estas tendencias es vital para FORM, ya que proporciona información sobre qué segmentos podrían requerir más empaques en el futuro. Esto puede guiar sus decisiones de inversión y estrategias de producción para los próximos años.
5. Modelo Predictivo para la Demanda: - Utilizar estos datos para desarrollar un modelo predictivo podría ayudar a FORM a anticiparse a las necesidades del mercado. Herramientas de análisis predictivo, como el Machine Learning, podrían usarse para prever la demanda futura basándose en las tendencias históricas y factores externos.
# Sumarizar la cantidad total por País destino y obtener los top 5
top_paises_destino <- mx_vehicle_exports %>%
group_by(`País destino`) %>%
summarise(Cantidad_Total = sum(Cantidad, na.rm = TRUE)) %>%
arrange(desc(Cantidad_Total)) %>%
slice_head(n = 5)
# Filtrar el dataframe original para tener solo los top 5 País destino
mx_vehicle_exports_top5 <- mx_vehicle_exports %>%
filter(`País destino` %in% top_paises_destino$`País destino`)
# Código para un box plot de la variable Cantidad por los top 5 País destino
ggplot(mx_vehicle_exports_top5, aes(x = `País destino`, y = Cantidad)) +
geom_boxplot() +
theme_minimal() +
labs(title = "Box Plot de Cantidad por Top 5 País Destino",
x = "País Destino",
y = "Cantidad") +
theme(axis.text.x = element_text(angle = 45, hjust = 1),
plot.title = element_text(hjust = 0.5))
1. Dominancia de Estados Unidos: - Estados Unidos
muestra una mediana y un rango intercuartílico superior a otros
destinos, lo cual indica que es el principal mercado para la
exportación. FORM puede centrarse en aumentar la capacidad de producción
y mejorar las soluciones logísticas para satisfacer la alta demanda de
empaques en este mercado.
2. Variabilidad en ‘No Especificado’: - La categoría ‘No Especificado’ tiene una alta variabilidad y valores atípicos, lo que podría indicar oportunidades no exploradas o datos incompletos. FORM podría investigar estos casos para identificar posibles nuevos mercados o mejorar la precisión en la recopilación de datos.
3. Consistencia en Alemania y Brasil: - Alemania y Brasil muestran una menor dispersión y consistencia en los envíos, lo que podría reflejar mercados establecidos con demandas predecibles. FORM puede utilizar esta información para optimizar inventarios y prever recursos de producción.
4. Beneficios del Análisis para FORM: - Analizar esta distribución de exportaciones podría ayudar a FORM a entender mejor la variabilidad y la consistencia en la demanda entre diferentes mercados. Esta información puede ser crítica para optimizar la cadena de suministro y poder desarrollar un modelo que ayude a predecir y controlar los niveles de inventario necesarios.
5. Modelo Predictivo para la Demanda: - Desarrollar un modelo predictivo basado en estos datos permitiría a FORM anticipar la demanda y ajustar la producción de forma proactiva. La utilización de técnicas estadísticas como la regresión, conjuntamente con algoritmos de machine learning, podría proporcionar estimaciones precisas de la demanda futura basándose en patrones históricos y tendencias actuales.
A través de este enfoque analítico, se espera obtener insights valiosos que contribuyan a una mejor comprensión del mercado de autopartes en México y su rol crítico dentro de la industria automotriz. Estos hallazgos podrían ofrecer directrices para la toma de decisiones estratégicas por parte de los actores de la industria, así como para el diseño de políticas públicas que promuevan el crecimiento y la sostenibilidad del sector. La metodología y los resultados de este análisis estarán fundamentados en la información detallada proporcionada en las bases de datos, cuyas fuentes se encuentran meticulosamente documentadas en el README adjunto a las bases de datos, asegurando así la transparencia y la fiabilidad de la investigación realizada.
Importaciónes, Exportaciónes y Producción de Autopartes
mx_autoparts_market <- read_csv("/Users/daviddrums180/Tec/Case_Study_Form/databases/industry_autos_mx/mx_autoparts_market.csv")
# Colores
colors <- c("Producción local total" = "#00BFC4",
"Exportaciones totales" = "#F8766D",
"Importaciones totales" = "#7CAE00",
"Importaciones de EE.UU." = "#C77CFF")
# Usar ggplot2 para graficar directamente los datos
ggplot(data = mx_autoparts_market) +
geom_line(aes(x = year, y = total_local_production, group = 1, colour = "Producción local total"), size = 1) +
geom_line(aes(x = year, y = total_exports, group = 1, colour = "Exportaciones totales"), size = 1) +
geom_line(aes(x = year, y = total_imports, group = 1, colour = "Importaciones totales"), size = 1) +
geom_line(aes(x = year, y = imports_from_US, group = 1, colour = "Importaciones de EE.UU."), size = 1) +
geom_point(aes(x = year, y = total_local_production, colour = "Producción local total"), size = 3) +
geom_point(aes(x = year, y = total_exports, colour = "Exportaciones totales"), size = 3) +
geom_point(aes(x = year, y = total_imports, colour = "Importaciones totales"), size = 3) +
geom_point(aes(x = year, y = imports_from_US, colour = "Importaciones de EE.UU."), size = 3) +
scale_colour_manual(values = colors) +
labs(title = "Mercado de Autopartes en México (2018-2022)",
x = "Año",
y = "Valor (en miles de millones de USD)",
colour = "Variable") +
theme_minimal()
1. Producción Local Total: - La línea que representa la producción local total muestra una tendencia decreciente de 2018 a 2019. - Hay una leve recuperación en 2020, seguida de una caída en 2021, y un ligero aumento en 2022. - Esta tendencia puede indicar desafíos en el sector de la producción o cambios en la demanda interna.
2. Exportaciones Totales: - Las exportaciones muestran una reducción significativa en 2020, posiblemente debido al impacto de la pandemia de COVID-19 en el comercio global. - Se observa una recuperación fuerte en 2021 y 2022, indicando una posible resiliencia o adaptación del mercado de exportación.
3. Importaciones Totales: - Las importaciones presentan un incremento constante a lo largo de los años, con una pequeña disminución en 2021. - La tendencia ascendente podría reflejar una creciente dependencia de componentes externos o un aumento en la demanda de autopartes no producidas localmente.
4. Importaciones de EE.UU.: - Las importaciones desde EE.UU. han disminuido significativamente desde 2018 hasta 2020. - Hay un aumento notable en 2021, que se revierte en 2022, sugiriendo fluctuaciones en las dinámicas comerciales con EE.UU.
Mercado de Autopartes Mx
mx_autoparts_market <- na.omit(mx_autoparts_market)
turquoise_palette <- c("#8ae0db", "#5dc1b9", "#42a8a1", "#239089")
# Crear la gráfica de barras con escala de color personalizada
ggplot(mx_autoparts_market, aes(x = factor(year), y = total_market_size, fill = total_market_size)) +
geom_bar(stat = "identity") +
scale_fill_gradientn(colors = turquoise_palette) +
labs(x = "Año", y = "Tamaño Total del Mercado (en miles de millones de USD)",
title = "Tamaño Total del Mercado de Autopartes en México (2018-2022)") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
1. Impacto de la Pandemia en 2020: - La marcada caída en 2020 puede correlacionarse con la pandemia de COVID-19, que afectó globalmente la producción y venta de automóviles. Para una empresa como FORM, especializada en empaques para autopartes, esto podría haber representado un reto significativo, posiblemente llevando a una reducción en la demanda de sus productos de empaquetado.
2. Recuperación Post-Pandemia: - El rebote en 2021 sugiere una recuperación post-pandemia que habría podido generar un aumento en la demanda de vehículos y, consecuentemente, de autopartes. Esto puede haber sido una oportunidad para FORM de expandir o diversificar su línea de productos de empaque, aprovechando la reactivación del mercado.
3. Innovación como Factor de Crecimiento: - La innovación de productos de empaque que permiten ahorros significativos en espacio y costos de logística por parte de FORM podría haber sido un factor determinante en su potencial de crecimiento durante el periodo de recuperación económica, especialmente considerando la tendencia creciente hacia la eficiencia y sostenibilidad en la industria automotriz.
4. Potencial para el Futuro: - Dada la tendencia de recuperación del mercado en 2022, empresas como FORM están bien posicionadas para capitalizar el crecimiento continuo de la industria automotriz. La adaptación a las nuevas normativas ambientales y la mejora en la eficiencia de la cadena de suministro serán claves para su éxito futuro.
carton_exp = read.csv("/Users/daviddrums180/Tec/Case_Study_Form/databases/industry_carton/temporary/Exporters of Carton boxes cases of corrugated paper or board 2020-2021.csv")
carton_imp = read.csv("/Users/daviddrums180/Tec/Case_Study_Form/databases/industry_carton/temporary/Importers of Cartons boxes cases of corrugated paper or board 2020-2021.csv")
electric_2016=read.csv("/Users/daviddrums180/Tec/Case_Study_Form/databases/industry_autos_usa/temporary/mx_venta_vehiculos_hibridos_electricos_2016.csv")
electric_2017=read.csv("/Users/daviddrums180/Tec/Case_Study_Form/databases/industry_autos_usa/temporary/mx_venta_vehiculos_hibridos_electricos_2017.csv")
electric_2018=read.csv("/Users/daviddrums180/Tec/Case_Study_Form/databases/industry_autos_usa/temporary/mx_venta_vehiculos_hibridos_electricos_2018.csv")
electric_2019=read.csv("/Users/daviddrums180/Tec/Case_Study_Form/databases/industry_autos_usa/temporary/mx_venta_vehiculos_hibridos_electricos_2019.csv")
electric_2020=read.csv("/Users/daviddrums180/Tec/Case_Study_Form/databases/industry_autos_usa/temporary/mx_venta_vehiculos_hibiridos_electricos_2020.csv")
electric_2021=read.csv("/Users/daviddrums180/Tec/Case_Study_Form/databases/industry_autos_usa/temporary/mx_venta_vehiculos_hibridos_electricos_2021.csv")
electric_2022=read.csv("/Users/daviddrums180/Tec/Case_Study_Form/databases/industry_autos_usa/temporary/mx_venta_vehiculos_hibridos_electricos_2022.csv")
electric_2023=read.csv("/Users/daviddrums180/Tec/Case_Study_Form/databases/industry_autos_usa/temporary/mx_venta_vehiculos_hibridos_electricos_2023.csv")
Exportaciones
# Filtrar los 15 países con mayores valores de comercio de exportación
top_countries <- carton_exp %>%
group_by(Country) %>%
summarize(TotalTradeValue = sum(Trade.Value)) %>%
top_n(15, TotalTradeValue) %>%
arrange(desc(TotalTradeValue))
# Unir los datos filtrados con el data.frame original para obtener los datos completos de esos países
top_countries_data <- carton_exp %>%
filter(Country %in% top_countries$Country)
# Crear el gráfico
ggplot(top_countries_data, aes(x = reorder(Country, Trade.Value), y = Trade.Value)) +
geom_col(fill = "steelblue") +
coord_flip() + # Hacer que el gráfico sea horizontal para mejor lectura
labs(title = "Top 15 Países en Valor de Exportación de Cartón",
x = "País",
y = "Valor de Comercio (USD)") +
theme_minimal() +
theme(plot.title = element_text(size = 14, face = "bold"),
axis.title.x = element_text(size = 12),
axis.title.y = element_text(size = 12),
axis.text.x = element_text(size = 10),
axis.text.y = element_text(size = 10))
El análisis de las exportaciones globales de cartón revela que México se posiciona como uno de los líderes en este sector, destacándose por sus significativos valores de exportación. Esta fortaleza en el mercado del cartón refleja no solo la alta competitividad de la industria mexicana, sino también su capacidad para producir materiales de calidad superior. Para una empresa emergente especializada en cartón para autopartes, esto representa una oportunidad única para aprovechar la infraestructura existente, las economías de escala y las redes de suministro eficientes dentro de México.
ggplot(carton_exp, aes(x = Continent, y = Trade.Value.Growth * 100, fill = Continent)) +
geom_boxplot() +
scale_y_continuous(limits = c(0, 50), breaks = seq(0, 50, 10), labels = paste0(seq(0, 50, 10), "%")) +
labs(title = "Crecimiento del Valor de Comercio de Exportaciones de Cartón por Continente",
x = "Continente",
y = "Crecimiento del Valor de Comercio (%)") +
theme_minimal()
En cuanto al crecimiento de la industria del cartón por continente, podemos ver que Oceanía es el continente con el mayor porcentaje de crecimiento, sin embargo, la mediana del continente norteamericano es de poco menos del 20%, lo que indica que hay una tendencia positiva de esta industria en nuestro continente.
Importaciones
# Filtrar los 15 países con mayores valores de comercio de importación
top_countries_2 <- carton_imp %>%
group_by(Country) %>%
summarize(TotalTradeValue = sum(Trade.Value)) %>%
top_n(15, TotalTradeValue) %>%
arrange(desc(TotalTradeValue))
# Unir los datos filtrados con el data.frame original para obtener los datos completos de esos países
top_countries_data_2 <- carton_imp %>%
filter(Country %in% top_countries_2$Country)
# Crear el gráfico
ggplot(top_countries_data_2, aes(x = reorder(Country, Trade.Value), y = Trade.Value)) +
geom_col(fill = "blue") +
coord_flip() +
labs(title = "Top 15 Países en Valor de Importación de Cartón",
x = "País",
y = "Valor de Comercio (USD)") +
theme_minimal() +
theme(plot.title = element_text(size = 14, face = "bold"),
axis.title.x = element_text(size = 12),
axis.title.y = element_text(size = 12),
axis.text.x = element_text(size = 10),
axis.text.y = element_text(size = 10))
En cuanto a las importaciones, México se consolida como el cuarto mayor
importador mundial de cartón, destacando su rol clave en la industria
global. Justo delante, Estados Unidos ocupa la segunda posición,
reflejando la intensa actividad comercial y la demanda de materiales de
calidad entre estos países vecinos. Esta situación subraya la
importancia estratégica de México en el mercado de cartón y su cercanía
con uno de los mayores importadores, Estados Unidos, potenciando las
oportunidades de sinergia y cooperación transfronteriza en la cadena de
suministro.
# Crear una lista de dataframes para iterar
electric_dfs <- list(electric_2016 = electric_2016, electric_2017 = electric_2017,
electric_2018 = electric_2018, electric_2019 = electric_2019,
electric_2020 = electric_2020, electric_2021 = electric_2021,
electric_2022 = electric_2022, electric_2023 = electric_2023)
# Inicializar un vector para almacenar los totales de ventas de vehículos eléctricos por año
total_sales_by_year <- numeric(length(electric_dfs))
names(total_sales_by_year) <- names(electric_dfs)
# Sumar las ventas de vehículos eléctricos por año
for (year in names(electric_dfs)) {
total_sales_by_year[year] <- sum(electric_dfs[[year]]$VEH_ELECTR, na.rm = TRUE)
}
# Convertir a data.frame
sales_df <- data.frame(Year = names(total_sales_by_year),
ElectricVehicleSales = total_sales_by_year)
# Ver el resultado
print(sales_df)
## Year ElectricVehicleSales
## electric_2016 electric_2016 254
## electric_2017 electric_2017 237
## electric_2018 electric_2018 201
## electric_2019 electric_2019 305
## electric_2020 electric_2020 449
## electric_2021 electric_2021 1140
## electric_2022 electric_2022 5631
## electric_2023 electric_2023 4130
# Asumiendo que sales_df ya está creado y contiene las columnas 'Year' y 'ElectricVehicleSales'
ggplot(sales_df, aes(x = Year, y = ElectricVehicleSales)) +
geom_col(fill = "steelblue", color = "black") + # Usamos barras con colores personalizados
geom_text(aes(label = ElectricVehicleSales), vjust = -0.5, size = 3.5) + # Añadir etiquetas de texto sobre las barras
labs(title = "Ventas de Vehículos Eléctricos en México por Año",
subtitle = "Datos de ventas desde 2016 hasta 2023",
x = "Año",
y = "Ventas de Vehículos Eléctricos") +
theme_minimal() + # Tema minimalista
theme(plot.title = element_text(hjust = 0.5, size = 16, face = "bold"), # Centrar y dar formato al título
plot.subtitle = element_text(hjust = 0.5, size = 12), # Centrar el subtítulo
axis.title.x = element_text(size = 14, face = "bold"), # Formato para el título del eje X
axis.title.y = element_text(size = 14, face = "bold"), # Formato para el título del eje Y
axis.text.x = element_text(angle = 45, hjust = 1)) # Rotar las etiquetas del eje X para mejorar la legibilidad
Como se puede apreciar en la gráfica, las ventas en México de los vehículos eléctricos tienen una clara tendencia positiva desde hace varios años, esto refleja la oportunidad y la necesidad de que empresas como FORM adapten su oferta de soluciones a las nuevas autopartes que requieren este nuevo tipo de vehículos.
#Se detectó un error en ID_ENTIDAD, existiendo el ID=99.
# Filtrar para eliminar ID_ENTIDAD = 99
datos_filtrados <- electric_2023 %>%
filter(ID_ENTIDAD != 99)
# Agrupar datos por ID_ENTIDAD y sumar las ventas de vehículos eléctricos
ventas_por_estado <- datos_filtrados %>%
group_by(ID_ENTIDAD) %>%
summarise(Total_VEH_ELECTR = sum(VEH_ELECTR, na.rm = TRUE))
estados_mexico <- c("Aguascalientes", "Baja California", "Baja California Sur", "Campeche", "Chiapas",
"Chihuahua", "Ciudad de México", "Coahuila", "Colima", "Durango", "Guanajuato",
"Guerrero", "Hidalgo", "Jalisco", "México", "Michoacán", "Morelos", "Nayarit",
"Nuevo León", "Oaxaca", "Puebla", "Querétaro", "Quintana Roo", "San Luis Potosí",
"Sinaloa", "Sonora", "Tabasco", "Tamaulipas", "Tlaxcala", "Veracruz", "Yucatán", "Zacatecas")
datos_filtrados$ID_ENTIDAD <- as.numeric(datos_filtrados$ID_ENTIDAD)
# Agregar una nueva columna con los nombres de los estados
datos_filtrados <- datos_filtrados %>%
mutate(Estado = estados_mexico[ID_ENTIDAD])
# Crear la gráfica
ggplot(ventas_por_estado, aes(x = factor(ID_ENTIDAD), y = Total_VEH_ELECTR, fill = factor(ID_ENTIDAD))) +
geom_bar(stat = "identity", color = "black", show.legend = FALSE) +
scale_fill_viridis_d() +
labs(title = "Ventas de Vehículos Eléctricos de México por Estado en 2023",
x = "ID del Estado",
y = "Total de Ventas de Vehículos Eléctricos",
caption = "Nota: ID del Estado: 1 = Aguascalientes, etc. ID_ENTIDAD = 99 excluido.") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 90, hjust = 1))
En cuanto a los estados con mayores ventas de vehículos eléctricos en el último año, destacan los estados con las capitales más importantes del país como Nuevo León, CDMX, Jalisco, Querétaro y Puebla. Esto puede representar para FORM oportunidades en cuanto a cómo enfocar su cadena de suministro para las mayores ventas de sus clientes.
Apartir de los antecedentes de la empresa y el contexto de la industrias de México y E.U.A. elaborar FODA cruzado que identifique y describa 2-3 estrategias a seguir por parte de la empresa en el corto plazo.
Estrategias FODA Cruzado para FORM
Con base en el análisis de las industrias de México y E.U.A. identificar variables / factores relevantes para la elaboración de PESTLE y describir 2-3 estrategias a seguir por parte de la empresa en el corto plazo.
EE.UU. advierte terminar tratado de comercio con México por fábricas de carros chinos. Las futuras elecciones pueden ser un factor muy importante en la industria automotriz, ya que según BBC News, Trump se muestra de manera muy hostil ante los fabricantes de automóviles. Por lo que, puede que imponga alguna ley que afecte negativamente la industria. El Tratado entre México, Estados Unidos y Canadá (T-MEC) establece reglas para el comercio entre los tres países, incluyendo la industria automotriz. El T-MEC ha sido positivo para la industria automotriz mexicana, ya que ha aumentado la producción y las exportaciones. El gobierno mexicano ha implementado una serie de políticas para promover la industria automotriz, como la creación de un fondo de apoyo a la industria y la reducción de impuestos a la importación de autopartes.
Sector automotriz, con la mayor demanda de espacios industriales por Nearshoring. Industria automotriz aumenta 7.8% la producción en febrero. México recibirá 2 mil 300 mdd de inversión extranjera en autopartes en 2024: INA. El nearshoring puede reducir los costos de producción al aprovechar la mano de obra más barata en países cercanos. Esto puede mejorar la competitividad de FORM en el mercado. La tasa de interés en Estados Unidos ha aumentado en los últimos años. Esto ha encarecido el crédito para los consumidores, lo que podría afectar la demanda de vehículos.
Se busca que en México solo se vendan autos eléctricos. Protagonistas de la industria automotriz en México han unido fuerzas para crear la Electro Movilidad Asociación (EMA), alianza que nace con el objetivo de alcanzar el 100 por ciento de ventas de vehículos eléctricos para el año 2035.
Exportación de autos made in México crece 22.6% en febrero y acelera a máximo histórico. Stellantis anuncia importante plan de inversiones para América Latina. Las regulaciones de seguridad para los vehículos están aumentando en todo el mundo. Esto está obligando a las empresas automotrices a invertir en nuevas tecnologías de seguridad.
La Industria Nacional de Autopartes aseguró que la producción de baterías para autos eléctricos en Norteamérica es fundamental para cumplir con las reglas de origen del T-MEC. El cambio climático es una preocupación importante para la industria automotriz. Las empresas automotrices están desarrollando vehículos más eficientes en combustible y vehículos eléctricos para reducir su impacto ambiental.
Explorar, definir, y describir cuáles son los principales factores del clima organizacional de FORM que propician la satisfacción y/o no satisfacción de trabajar en dicha empresa.
La rotación de personal se ha identificado como el desafío más crítico que enfrenta FORM en el presente. A pesar de nuestros esfuerzos continuos para crear un ambiente laboral atractivo y retener a nuestros valiosos empleados, nos encontramos con una tasa de rotación especialmente alta entre los operadores. Este fenómeno no solo afecta la continuidad y la eficiencia de nuestras operaciones, sino que también incrementa los costos asociados con el reclutamiento y la capacitación de nuevo personal.
Explorar, desarrollar, y describir la(s) posible(s) estrategia(s) de predicción de la demanada de productos fabricados por la empresa FORM.
La predicción precisa de la demanda representa un desafío igualmente significativo para FORM, dada la variabilidad inherente en la producción y venta de autopartes. La habilidad para anticipar con exactitud cuántas unidades de un determinado componente serán necesarias es crucial para optimizar nuestros procesos de producción y empaque, y para asegurar que se maximice la eficiencia en el uso de recursos.
Elaborar 4-6 preguntas relacionadas con la situación problema seleccionada que se puedan responder mediante el análisis de datos.
Situación Problema 1: Rotación de Personal
¿Qué está causando la rotación de personal tan alta?
¿Existe algún momento del año donde se den más bajas dentro de la empresa?
¿Cómo se siente la gente dentro de su trabajo actual?
¿Qué factor ayuda a que el personal dure más tiempo dentro de la empresa?
¿En qué parte de la empresa el trabajador se siente más inconforme y cuál es su perfil?
FORM Bajas
# Limpieza de Fecha
form_bajas$`Fecha de Nacimiento` <- as.Date(form_bajas$`Fecha de Nacimiento` - ifelse(form_bajas$`Fecha de Nacimiento` > 60, 1, 0), origin="1899-12-30")
form_bajas$`Fecha de Alta` <- as.Date(form_bajas$`Fecha de Alta` - ifelse(form_bajas$`Fecha de Alta` > 60, 1, 0), origin="1899-12-30")
form_bajas$`Primer Mes` <- as.Date(form_bajas$`Primer Mes` - ifelse(form_bajas$`Primer Mes` > 60, 1, 0), origin="1899-12-30")
form_bajas$`Cuarto Mes` <- as.Date(form_bajas$`Cuarto Mes` - ifelse(form_bajas$`Cuarto Mes` > 60, 1, 0), origin="1899-12-30")
form_bajas$`Fecha de Baja` <- as.Date(form_bajas$`Fecha de Baja` - ifelse(form_bajas$`Fecha de Baja` > 60, 1, 0), origin="1899-12-30")
# Calcular la antigüedad como la diferencia entre Fecha de Baja y Fecha de Alta
form_bajas$Antiguedad <- abs(as.numeric(form_bajas$`Fecha de Baja` - form_bajas$`Fecha de Alta`, units = "days"))
head(form_bajas)
## # A tibble: 6 × 27
## No. Apellidos Nombre `Fecha de Nacimiento` Género RFC `Fecha de Alta`
## <dbl> <chr> <chr> <date> <chr> <chr> <date>
## 1 1 Perez Chavarr… Yessi… 1985-02-12 Femen… PECY… 2022-09-04
## 2 1 Pecina Aleman Blanc… 1966-05-24 Femen… PEAB… 2022-10-05
## 3 1 Suarez Romo Julio… 1969-06-26 Mascu… SURJ… 2017-11-30
## 4 1 Ortiz De La T… Fermi… 1966-07-06 Femen… OITF… 2022-05-31
## 5 1 Gallegos Manz… Veron… 1973-11-27 Femen… GAMV… 2022-10-21
## 6 1 Guzman Reyes Carlo… 2002-11-24 Mascu… GURC… 2023-01-05
## # ℹ 20 more variables: `Primer Mes` <date>, `Cuarto Mes` <date>,
## # `Fecha de Baja` <date>, `Motivo de Baja` <chr>, Puesto <chr>, Dpto <chr>,
## # Imss <chr>, SD <chr>, `Factor de Crédito Infonavit` <chr>,
## # `No. De Crédito Infonavit` <chr>, CURP <chr>, Calle <chr>, Número <chr>,
## # Colonia <chr>, Municipio <chr>, Estado <chr>, CP <dbl>,
## # `Estado Civil` <chr>, `Número de Télefono` <dbl>, Antiguedad <dbl>
FORM RH
# Asegurándonos de que las fechas estén en formato adecuado
form_rh$`Fecha de nacimiento` <- as.Date(form_rh$`Fecha de nacimiento`, origin = "1899-12-30")
form_rh$`Fecha de Alta` <- as.Date(form_rh$`Fecha de Alta`)
form_rh$`Fecha de Baja` <- as.Date(form_rh$`Fecha de Baja`)
# Calcular la Edad y la Duración en el trabajo
form_rh <- form_rh %>%
mutate(
Edad = interval(start = `Fecha de nacimiento`, end = Sys.Date()) %/% years(1),
Duracion = case_when(
is.na(`Fecha de Baja`) ~ interval(start = `Fecha de Alta`, end = Sys.Date()) %/% days(1),
TRUE ~ interval(start = `Fecha de Alta`, end = `Fecha de Baja`) %/% days(1)
)
)
# Verificar los resultados
head(form_rh)
## # A tibble: 6 × 34
## No. Apellido Nombre `Fecha de nacimiento` Género RFC `Fecha de Alta`
## <dbl> <chr> <chr> <date> <chr> <chr> <date>
## 1 17 ramirez ramir… sandr… 1990-02-11 femen… rars… 2022-08-22
## 2 30 de luna ramos lluvia 2002-06-12 femen… lurl… 2023-10-23
## 3 31 contreras lop… melin… 1985-10-12 femen… colm… 2023-12-01
## 4 32 romero ramirez nayda… 1993-10-29 femen… rorn… 2023-12-04
## 5 28 granados sauc… sonia… 1984-06-22 femen… gass… 2023-08-21
## 6 28 sauri viveros said 2001-12-05 mascu… savs… 2023-08-16
## # ℹ 27 more variables: `Primer Mes` <date>, `Cuarto Mes` <date>,
## # `Fecha de Baja` <date>, Puesto <chr>, Dpto <chr>, Imss <chr>, SD <dbl>,
## # `Factor de Crédito Infonavit` <chr>, `No. De Crédito Infonavit` <chr>,
## # `Lugar de Nacimiento` <chr>, CURP <chr>, Calle <chr>, Número <chr>,
## # Colonia <chr>, Municipio <chr>, Estado <chr>, CP <chr>,
## # `Estado Civil` <chr>, `Número de Télefono` <chr>, Banco <chr>,
## # `Correo Electronico` <chr>, `Causa de Baja` <chr>, …
FORM Bajas Espacial
form_bajas$CP <- as.character(form_bajas$CP)
cp_nl$d_codigo <- as.character(cp_nl$d_codigo)
stats_por_cp <- form_bajas %>%
group_by(CP) %>%
summarize(
Conteo_Empleados = n(),
Mediana_Antiguedad = median(Antiguedad, na.rm = TRUE),
.groups = 'drop'
)
form_bajas_espacial <- cp_nl %>%
left_join(stats_por_cp, by = c("d_codigo" = "CP"))
# Reemplazar NA con 0 en las columnas de interés
form_bajas_espacial$Conteo_Empleados[is.na(form_bajas_espacial$Conteo_Empleados)] <- 0
form_bajas_espacial$Mediana_Antiguedad[is.na(form_bajas_espacial$Mediana_Antiguedad)] <- 0
head(form_bajas_espacial)
## Simple feature collection with 6 features and 3 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: 2661927 ymin: 1481451 xmax: 2725620 ymax: 1529424
## Projected CRS: Lambert_Conformal_Conic
## d_codigo Conteo_Empleados Mediana_Antiguedad geometry
## 1 66063 0 0 MULTIPOLYGON (((2662011 152...
## 2 67495 0 0 MULTIPOLYGON (((2716586 149...
## 3 67467 0 0 MULTIPOLYGON (((2707035 148...
## 4 67494 0 0 MULTIPOLYGON (((2718640 149...
## 5 67475 0 0 MULTIPOLYGON (((2707164 151...
## 6 64010 0 0 MULTIPOLYGON (((2670043 151...
FORM Satisfacción
# Lista de columnas específicas a transformar
columnas_a_transformar <- c("salario_bueno", "prestaciones_bueno", "jornada_no_excesiva",
"ofrecimiento_herramientas", "no_molestia_temperatura", "estres_bajo",
"facilidad_transporte", "zona_trabajo_comoda", "permanencia_form_futuro")
# Ajustar la función para manejar el typo y valores inesperados
codificar_respuestas <- function(respuesta) {
# Corregir posibles typos
respuesta <- gsub("Totalmende en desacuerdo", "Totalmente en desacuerdo", respuesta)
# Usar switch para asignar valores numéricos
switch(respuesta,
"Totalmente en desacuerdo" = 1,
"Medianamente en desacuerdo" = 2,
"Ni de acuerdo ni en desacuerdo" = 3,
"Medianamente de acuerdo" = 4,
"Totalmente de acuerdo" = 5,
NA) # Devolver NA para cualquier respuesta no reconocida
}
# Aplicar la codificación solo a las columnas seleccionadas, asegurando que todas las transformaciones son numéricas
form_satisfaccion[columnas_a_transformar] <- lapply(form_satisfaccion[columnas_a_transformar], function(x) as.numeric(sapply(x, codificar_respuestas)))
head(form_satisfaccion)
## # A tibble: 6 × 22
## encuesta puesto antiguedad razon_entrada salario_bueno prestaciones_bueno
## <dbl> <chr> <dbl> <chr> <dbl> <dbl>
## 1 1 administra… 9 salario 5 4
## 2 2 costurera 36 otro 4 4
## 3 3 ayudante g… 4 ubicacion em… 2 1
## 4 4 ayudante g… 2 ubicacion em… 5 4
## 5 5 ayudante g… 1 ubicacion em… 3 1
## 6 6 ayudante g… 36 razones pers… 4 5
## # ℹ 16 more variables: jornada_no_excesiva <dbl>,
## # ofrecimiento_herramientas <dbl>, no_molestia_temperatura <dbl>,
## # estres_bajo <dbl>, facilidad_transporte <dbl>, zona_trabajo_comoda <dbl>,
## # permanencia_form_futuro <dbl>, sufrido_situaciones_conflicto <chr>,
## # molestias_puesto <chr>, sentimiento_form <chr>, edad <chr>, genero <chr>,
## # estado_civil <chr>, municipio <chr>, nivel_escolar <chr>,
## # personas_dependientes <dbl>
Exportación de Vehículos México
exp_vehiculos$Fecha <- as.yearqtr(exp_vehiculos$quarter, format = "%Y-Q%q")
Venta de Vehículos México
ventas_vehiculos$Fecha <- as.yearqtr(paste(ventas_vehiculos$ANIO, ventas_vehiculos$ID_MES, "1"), format = "%Y %m %d")
¿Qué está causando la rotación de personal tan alta?
# Reunir todas las columnas de interés en dos columnas: 'pregunta' y 'respuesta'
datos_largos <- form_satisfaccion %>%
pivot_longer(cols = c(salario_bueno, prestaciones_bueno, jornada_no_excesiva,
ofrecimiento_herramientas, no_molestia_temperatura,
estres_bajo, facilidad_transporte, zona_trabajo_comoda,
permanencia_form_futuro),
names_to = "pregunta", values_to = "respuesta") %>%
group_by(pregunta, respuesta) %>%
summarise(n = n(), .groups = 'drop') %>%
mutate(Percentage = n / sum(n))
# Ordenar las preguntas por el porcentaje de 'Muy en contra' que corresponde a la respuesta '1'
orden_preguntas <- datos_largos %>%
filter(respuesta == 1) %>%
arrange((Percentage)) %>%
pull(pregunta)
# Convertir 'respuesta' a un factor con etiquetas para la leyenda
datos_largos$respuesta <- factor(datos_largos$respuesta, levels = 1:5,
labels = c("Muy en contra", "En contra",
"Neutral", "A favor",
"Muy a favor"))
# Paleta de colores personalizada para los niveles de acuerdo
colores_personalizados <- c("#d7191c", "#fdae61", "#c8c6c4", "#bbbcb8", "#8d8c86")
# Generar el gráfico
g <- ggplot(datos_largos, aes(x = factor(pregunta, levels = orden_preguntas), y = Percentage, fill = respuesta)) +
geom_bar(stat = "identity", position = "fill") +
scale_fill_manual(values = colores_personalizados, labels = levels(datos_largos$respuesta)) +
coord_flip() +
labs(y = "Porcentaje", x = "", fill = "") +
scale_y_continuous(labels = percent_format()) +
theme_minimal() +
theme(legend.position = "bottom",
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
legend.title = element_blank(),
legend.key.size = unit(0.5, 'lines'))
# Para guardar el gráfico en un archivo
g
summary(form_satisfaccion)
## encuesta puesto antiguedad razon_entrada
## Min. : 1.00 Length:106 Min. : 1.00 Length:106
## 1st Qu.: 27.25 Class :character 1st Qu.: 1.00 Class :character
## Median : 53.50 Mode :character Median : 9.00 Mode :character
## Mean : 53.50 Mean :14.08
## 3rd Qu.: 79.75 3rd Qu.:34.50
## Max. :106.00 Max. :36.00
## salario_bueno prestaciones_bueno jornada_no_excesiva
## Min. :1.000 Min. :1.000 Min. :1.00
## 1st Qu.:3.000 1st Qu.:2.000 1st Qu.:4.00
## Median :4.000 Median :4.000 Median :5.00
## Mean :3.792 Mean :3.274 Mean :4.16
## 3rd Qu.:5.000 3rd Qu.:5.000 3rd Qu.:5.00
## Max. :5.000 Max. :5.000 Max. :5.00
## ofrecimiento_herramientas no_molestia_temperatura estres_bajo
## Min. :1.000 Min. :1.000 Min. :1.000
## 1st Qu.:3.000 1st Qu.:1.000 1st Qu.:3.000
## Median :5.000 Median :3.000 Median :4.000
## Mean :3.877 Mean :3.123 Mean :3.679
## 3rd Qu.:5.000 3rd Qu.:5.000 3rd Qu.:5.000
## Max. :5.000 Max. :5.000 Max. :5.000
## facilidad_transporte zona_trabajo_comoda permanencia_form_futuro
## Min. :1.000 Min. :1.000 Min. :1.000
## 1st Qu.:4.000 1st Qu.:4.000 1st Qu.:3.000
## Median :5.000 Median :5.000 Median :5.000
## Mean :4.009 Mean :4.311 Mean :4.038
## 3rd Qu.:5.000 3rd Qu.:5.000 3rd Qu.:5.000
## Max. :5.000 Max. :5.000 Max. :5.000
## sufrido_situaciones_conflicto molestias_puesto sentimiento_form
## Length:106 Length:106 Length:106
## Class :character Class :character Class :character
## Mode :character Mode :character Mode :character
##
##
##
## edad genero estado_civil municipio
## Length:106 Length:106 Length:106 Length:106
## Class :character Class :character Class :character Class :character
## Mode :character Mode :character Mode :character Mode :character
##
##
##
## nivel_escolar personas_dependientes
## Length:106 Min. :0.000
## Class :character 1st Qu.:0.000
## Mode :character Median :1.000
## Mean :1.085
## 3rd Qu.:2.000
## Max. :3.000
variables_categoricas <- c("salario_bueno", "prestaciones_bueno", "jornada_no_excesiva",
"ofrecimiento_herramientas", "no_molestia_temperatura", "estres_bajo",
"facilidad_transporte", "zona_trabajo_comoda", "permanencia_form_futuro")
# Calculamos los porcentajes por categoría para cada variable
porcentajes_categorias <- form_satisfaccion %>%
select(all_of(variables_categoricas)) %>%
pivot_longer(cols = everything(), names_to = "Variable", values_to = "Valor") %>%
group_by(Variable) %>%
count(Valor) %>%
mutate(Porcentaje = n / sum(n) * 100) %>%
ungroup() %>%
select(-n) # Si no necesitas la columna de conteos, puedes omitirla.
# Convertir a un formato ancho específico para cada variable y valor
porcentajes_ancho <- porcentajes_categorias %>%
pivot_wider(names_from = Valor, values_from = Porcentaje, names_prefix = "Categoria_") %>%
select(Variable, starts_with("Categoria_")) %>%
arrange(Variable)
# Modificamos 'porcentajes_ancho' para formatear los porcentajes
porcentajes_ancho <- porcentajes_ancho %>%
mutate(across(starts_with("Categoria_"), ~sprintf("%.1f%%", .)))
# Ver los resultados
print(porcentajes_ancho)
## # A tibble: 9 × 6
## Variable Categoria_1 Categoria_2 Categoria_3 Categoria_4 Categoria_5
## <chr> <chr> <chr> <chr> <chr> <chr>
## 1 estres_bajo 12.3% 8.5% 18.9% 19.8% 40.6%
## 2 facilidad_transpo… 14.2% 8.5% 1.9% 13.2% 62.3%
## 3 jornada_no_excesi… 7.5% 5.7% 9.4% 17.9% 59.4%
## 4 no_molestia_tempe… 33.0% 6.6% 11.3% 13.2% 35.8%
## 5 ofrecimiento_herr… 18.9% 1.9% 8.5% 14.2% 56.6%
## 6 permanencia_form_… 8.5% 4.7% 14.2% 19.8% 52.8%
## 7 prestaciones_bueno 19.8% 17.9% 9.4% 20.8% 32.1%
## 8 salario_bueno 10.4% 10.4% 7.5% 33.0% 38.7%
## 9 zona_trabajo_como… 7.5% 4.7% 3.8% 17.0% 67.0%
¿Existe algún momento del año donde se den más bajas dentro de la empresa?
# Agregar una columna que indique el mes de la fecha de baja
form_bajas$Mes <- month(form_bajas$`Fecha de Baja`)
form_bajas$Año <- year(form_bajas$`Fecha de Baja`)
# Agrupar por mes y género, luego contar las bajas
bajas_por_mes_genero <- form_bajas %>%
group_by(Mes, Género) %>%
summarise(Conteo = n(), .groups = 'drop') %>%
arrange(Mes)
# Graficar las bajas por mes para cada género
ggplot(bajas_por_mes_genero, aes(x = Mes, y = Conteo, group = Género, color = Género)) +
geom_line() +
scale_x_continuous(breaks = 1:12, labels = month.name) +
theme_minimal() +
labs(title = "Bajas por Mes Dividido por Género",
x = "Mes",
y = "Número de Bajas",
color = "Género")
# Configurar tmap para que intente reparar automáticamente los polígonos inválidos
tmap_options(check.and.fix = TRUE)
# Calcular los breaks para Conteo de Empleados excluyendo los ceros
conteo_empleados_values <- form_bajas_espacial$Conteo_Empleados[form_bajas_espacial$Conteo_Empleados > 0]
breaks_conteo <- c(-Inf, quantile(conteo_empleados_values, probs = seq(0, 1, by = 0.25), na.rm = TRUE))
# Calcular los breaks para Mediana de Antigüedad excluyendo los ceros
antiguedad_values <- form_bajas_espacial$Mediana_Antiguedad[form_bajas_espacial$Mediana_Antiguedad > 0]
breaks_antiguedad <- c(-Inf, quantile(antiguedad_values, probs = seq(0, 1, by = 0.25), na.rm = TRUE))
# Mapa para Conteo de Empleados
conteo_empleados_map <- tm_shape(form_bajas_espacial) +
tm_fill("Conteo_Empleados", palette = "Blues", style = "fixed", breaks = breaks_conteo,
title = "Conteo de Empleados", na.color = "white") +
tm_borders() +
tm_layout(frame = FALSE, legend.position = c("left", "bottom"))
# Mapa para Mediana de Antigüedad
mediana_antiguedad_map <- tm_shape(form_bajas_espacial) +
tm_fill("Mediana_Antiguedad", palette = "BuPu", style = "fixed", breaks = breaks_antiguedad,
title = "Mediana de Antigüedad", na.color = "white") +
tm_borders() +
tm_layout(frame = FALSE, legend.position = c("right", "bottom"))
# Configurar opciones de tmap para la visualización de los mapas
tmap_mode("view")
# Mostrar mapas lado a lado
tmap_arrange(conteo_empleados_map, mediana_antiguedad_map, nrow = 1)
Sociales.
La clase media en México está creciendo. Esto ha aumentado la demanda de vehículos, ya que las personas de la clase media tienen más dinero para gastar. Las preocupaciones ambientales están aumentando en Estados Unidos. Esto podría afectar la demanda de vehículos, ya que los consumidores podrían optar por comprar vehículos más eficientes en combustible o vehículos eléctricos.